Prijem dat v Delphi z COM1

Otázka od: Peter Ondras

21. 5. 2004 19:30

Mam mincovnik s vystupom na maly COM (mam ho zapojeny do COM1).
Mincovnik dokaze brat 4 druhy minci. Za kazdu mincu ma vyslat do PC
informaciu po jednom kanali. Neviem presne co znamena "kanal", asi to
bude jeden kablik z moznych 9. Ked som pouzil free komponenty z
torry.net (napr. TCommPortDriver), tak udalost OnReceiveData sa spustila
len pri jednom druhu minci a aj to nacitala (po prevode na string) "#0".
Ako mozem bez komponenty pristupovat ku COM portu a ako mozem potom
nacitat kanal 1 az 4 - napr. pomocou Assembleru ako tu dnes niekto pisal
priklad pre Pascal, avsak na to by som potreboval priklad.

Za pomoc dakujem.

Peter Ondras


Odpovedá: Petr Fejfar

23. 5. 2004 8:43

Peter Ondras wrote:

> Mam mincovnik s vystupom na maly COM (mam ho zapojeny do COM1).
> Mincovnik dokaze brat 4 druhy minci. Za kazdu mincu ma vyslat do PC
> informaciu po jednom kanali. Neviem presne co znamena "kanal", asi to
> bude jeden kablik z moznych 9.

Kdyz nemas dokumentaci, tak by to chtelo osciloskop nebo alespon logickou
sondu
schopnou reagovat na impuls.

Tech moznosti moc nebude:

a) Na D-9 konektoru mas v podstate 4 vstupni signaly: RxD, DSR, CTS a RI,
    takze muze byt pouzita prosta linearni adresace - to se da ocekavat
    u "dumb" zarizeni, ktere pouze spina signal odebrany z portu na 1/n
vstupu

b) Nektery signal muze mit funkci strobe (napr. spadova hrana na RxD)
  a zbyle vyjadruji nejakou kombinaci.

> Ked som pouzil free komponenty z torry.net (napr. TCommPortDriver),
> tak udalost OnReceiveData sa spustila len pri jednom druhu minci
> a aj to nacitala (po prevode na string) "#0".

Chovani je v souladu s hypotezou vyse.


> Ako mozem bez komponenty pristupovat ku COM portu a ako
> mozem potom nacitat kanal 1 az 4 - napr. pomocou Assembleru ako tu
> dnes niekto pisal priklad pre Pascal, avsak na to by som potreboval
> priklad.

Podivej se do SDK na popis funkci SetCommMask a WaitCommEvent -
najdes tam odkazy na dalsi souvisejici funkce a priklady v C jak to
pouzivat.
Az ti to pobezi, tak bys mel videt, co se ti na tom portu meni.

A pokud to nechces programovat, tam myslim ze PV v jeho Asyncfree
komponentach
comm events obsluhuje a propaguje necim jako OnPortEvent.



HTH, pf